import { defineStore } from "pinia";
import { SystemApi } from "@/api/modules";
import { DictsState, DictsProps } from "@/stores/interface";

const useDictStore = defineStore({
  id: "dict",
  state: (): DictsState => ({
    allDicts: {},
  }),
  actions: {
    // 查询所有字典数据
    async getAllDictsList() {
      const { data } = await SystemApi.getAllDictsList();
      this.allDicts = {};
      // 处理字典数据 key-arr 格式
      data.forEach((item: DictsProps) => {
        const enumValueObj = this.allDicts[item.dictType];
        if (!enumValueObj) {
          this.allDicts[item.dictType] = [];
        }
        this.allDicts[item.dictType].push({
          value: item.value,
          label: item.label,
          colorType: item.colorType,
          cssClass: item.cssClass,
          status: item.status,
        });
      });
    },

    // 获取指定字典
    getDict(_key: string | "") {
      if (_key == null && _key === "") {
        return null;
      }
      return this.allDicts[_key] || [];
    },

    // // 设置字典
    // setDict(_key: string | null, value: any) {
    //   if (_key !== null && _key !== "") {
    //     this.dict.push({
    //       key: _key,
    //       value: value,
    //     });
    //   }
    // },
    // // 删除字典
    // removeDict(_key: any) {
    //   let bln = false;
    //   try {
    //     for (let i = 0; i < this.dict.length; i++) {
    //       if (this.dict[i].key === _key) {
    //         this.dict.splice(i, 1);
    //         return true;
    //       }
    //     }
    //   } catch (e) {
    //     bln = false;
    //   }
    //   return bln;
    // },
    // // 清空字典
    // cleanDict() {
    //   this.dict = [];
    // },
    // // 初始字典
    // initDict() {
    //   console.log("init");
    // },
  },
});

export default useDictStore;
